    <p class="alert alert-danger">自 v3.0 开始取消密文接口，请开发者自行按照加解密规则编写加解密程序；./_example/crypt.class.php 文件为加解密示例，开发者可以此为例自行编写程序。</p>

    <p>baigo SSO 大部分 API 接口返回加密结果，加密机制可有效防止数据泄漏，详情请查看具体接口，真正内容需要解密。解密后部分结果为 <mark>Base64 编码</mark>，需要进行 <mark>Base64 解码</mark>，详情请查看具体的接口。</p>

    <ul>
        <li>
            <a href="#encode">加密</a>
        </li>
        <li>
            <a href="#decode">解密</a>
        </li>
    </ul>

    <div>&nbsp;</div>
    <div class="text-right">
        <a href="#top">
            <span class="oi oi-chevron-top"></span>
            top
        </a>
    </div>
    <hr>
    <div>&nbsp;</div>

    <a name="encode"></a>
    <h3>加密</h3>

    <p class="alert alert-danger">自 v3.0 开始取消密文接口，请开发者自行按照加解密规则编写加解密程序，以下为加密函数示例。</p>

    <div>&nbsp;</div>
    <h5>加密函数示例</h5>

    <p>
<pre class="border rounded"><code class="language-php">/** 加密
 * encrypt function.
 *
 * @access public
 * @param mixed $string 待加密对象
 * @param mixed $app_key APP KEY (可从后台应用管理界面获得)
 * @param mixed $app_secret APP SECRET (长度必须为 16 位, 可从后台应用管理界面获得)
 * @return void
 */
function encrypt($string, $app_key, $app_secret) {
    if (strlen($app_secret) != 16) { //验证 APP SECRET 长度
        return array(
            'rcode' =&gt; 'x030308',
        );
    }

    $_str_encrypt   = openssl_encrypt($string, 'AES-128-CBC', $app_key, 1, $app_secret);

    $_str_encrypt   = base64_encode($_str_encrypt);

    //替换 base64 特殊字符, 防止传输过程中出现问题
    $_str_encrypt   = str_ireplace('=', '|', $_str_encrypt);
    $_str_encrypt   = str_ireplace('/', '@', $_str_encrypt);
    $_str_encrypt   = str_ireplace('+', '_', $_str_encrypt);

    return array(
        'rcode'     =&gt; 'ok',
        'decrypt'   =&gt; $_str_encrypt,
    );
}</code></pre>
    </p>

    <div>&nbsp;</div>
    <h4>参数</h4>

        <div class="table-responsive">
            <table class="table table-bordered">
                <thead>
                    <tr>
                        <th class="text-nowrap">名称</th>
                        <th class="text-nowrap">类型</th>
                        <th class="text-nowrap">必须</th>
                        <th>描述</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td class="text-nowrap">string</td>
                        <td class="text-nowrap">string</td>
                        <td class="text-nowrap">true</td>
                        <td>待加密对象</td>
                    </tr>
                    <tr>
                        <td class="text-nowrap">app_key</td>
                        <td class="text-nowrap">string</td>
                        <td class="text-nowrap">true</td>
                        <td>APP KEY 通信密钥，可从后台应用管理界面获得。</td>
                    </tr>
                    <tr>
                        <td class="text-nowrap">app_secret</td>
                        <td class="text-nowrap">string</td>
                        <td class="text-nowrap">true</td>
                        <td>APP KEY 密文密钥，长度必须为 16 位, 可从后台应用管理界面获得，此参数为加解密使用，请注意保密，切勿在网络中传输。</td>
                    </tr>
                </tbody>
            </table>
        </div>

    <div>&nbsp;</div>
    <div class="text-right">
        <a href="#top">
            <span class="oi oi-chevron-top"></span>
            top
        </a>
    </div>
    <hr>
    <div>&nbsp;</div>

    <a name="decode"></a>
    <h3>解密</h3>

    <p class="alert alert-danger">自 v3.0 开始取消密文接口，请开发者自行按照加解密规则编写加解密程序，以下为解密函数示例。</p>

    <div>&nbsp;</div>
    <h5>解密函数示例</h5>

    <p>
<pre class="border rounded"><code class="language-php">/** 解密
 * encrypt function.
 *
 * @access public
 * @param mixed $string 待解密字符串
 * @param mixed $app_key APP KEY (可从后台应用管理界面获得)
 * @param mixed $app_secret APP SECRET (长度必须为 16 位, 可从后台应用管理界面获得)
 * @return void
 */
function decrypt($string, $app_key, $app_secret) {
    if (strlen($app_secret) != 16) { //验证 APP SECRET 长度
        return array(
            'rcode' =&gt; 'x030308',
        );
    }

    //替换 base64 特殊字符, 防止传输过程中出现问题
    $string         = str_ireplace('|', '=', $string);
    $string         = str_ireplace('@', '/', $string);
    $string         = str_ireplace('_', '+', $string);
    $string         = base64_decode($string);

    $_str_decrypt   = openssl_decrypt($string, 'AES-128-CBC', $app_key, 1, $app_secret);

    return array(
        'rcode'     =&gt; 'ok',
        'decrypt'   =&gt; $_str_decrypt,
    );
}</code></pre>
    </p>

    <div>&nbsp;</div>
    <h4>参数</h4>

        <div class="table-responsive">
            <table class="table table-bordered">
                <thead>
                    <tr>
                        <th class="text-nowrap">名称</th>
                        <th class="text-nowrap">类型</th>
                        <th class="text-nowrap">必须</th>
                        <th>描述</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td class="text-nowrap">string</td>
                        <td class="text-nowrap">string</td>
                        <td class="text-nowrap">true</td>
                        <td>待加密对象</td>
                    </tr>
                    <tr>
                        <td class="text-nowrap">app_key</td>
                        <td class="text-nowrap">string</td>
                        <td class="text-nowrap">true</td>
                        <td>APP KEY 通信密钥，可从后台应用管理界面获得。</td>
                    </tr>
                    <tr>
                        <td class="text-nowrap">app_secret</td>
                        <td class="text-nowrap">string</td>
                        <td class="text-nowrap">true</td>
                        <td>APP KEY 密文密钥，长度必须为 16 位, 可从后台应用管理界面获得，此参数为加解密使用，请注意保密，切勿在网络中传输。</td>
                    </tr>
                </tbody>
            </table>
        </div>

    <div>&nbsp;</div>
    <h5>解密结果示例</h5>

    <p>
<pre class="border rounded"><code class="language-javascript">{
    &quot;user_id&quot;: &quot;MTA=&quot;,
    &quot;user_name&quot;: &quot;Zm9uZQ==&quot;,
    &quot;user_mail&quot;: &quot;Zm9uZUBiYWlnby5uZXQ=&quot;,
    &quot;user_nick&quot;: &quot;Zm9uZQ==&quot;,
    &quot;user_time&quot;: &quot;MTM5NDQxNzg3Mg==&quot;,
    &quot;user_time_login&quot;: &quot;MTQ0NjUyNTM1MA==&quot;,
    &quot;user_ip&quot;: &quot;MTIxLjE5OS4xMS4xNjM=&quot;
}</code></pre>
    </p>